// 给定一个整型数组, 你的任务是找到所有该数组的递增子序列，递增子序列的长度至少是2。
// 思路，回溯
// 每一层通过一个set去重
function findSubsequences(nums) {
    let result = []
    let path = []
    function backtracking(startIndex) {
        if (path.length >= 2) {
            result.push([...path])
        }
        // 不能用之前的去重逻辑，这里是无序数组
        let set = new Set()
        for (let i = startIndex; i < nums.length; i++) {
            if ((path.length > 0 && path[path.length - 1] > nums[i]) || set.has(nums[i])) {
                continue
            }
            set.add(nums[i])
            path.push(nums[i])
            backtracking(i + 1)
            path.pop()
        }
    }
    backtracking(0)
    return result
}

console.log(findSubsequences([4,6,7,7]))